iT邦幫忙

2022 iThome 鐵人賽

DAY 17
0

本篇大綱

MetalLB 要分配 IP 需要套用他們的設定檔,這篇將會講解如何建立 IP Pool 跟分配。

內文

MetalLB 在上篇文章安裝完畢,但系統還不具有分配 IP 的功能,我們就要讓他有分配 IP 的能力。

廣播分兩種模式:Layer 2 modeBGP mode

Layer 2 mode 廣播利用 ARP (IPv4) 跟 NDP (IPv6),好處是可以在任何網卡上使用,不需要再有額外設備,像是 Router。

BGP mode 就需要 BGP Peering 廣播使用 IP,然而 BGP 通常應用於比較大型的網路結構中。

BGP mode 部分筆者就沒有使用過了,需要等有設備才能測試實驗,而且通常 Layer 2 mode 廣播就夠用了。

IP Pool 建立

這裡就按照 MetalLB 官網上的 Usage **>** Full example 做設定。

我會分配 192.168.200.200 - 192.168.200.209 作為 External IP:

# 1. Save as `IPAddressPool.yaml`
# 2. In bash, `kubectl apply -f IPAddressPool.yaml`
# 3. If you want to remove, `kubectl delete -f IPAddressPool.yaml`
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool # IP Pool 的名字
  namespace: metallb-system # Namespace
spec:
  addresses:
  - 192.168.200.200-192.168.200.209 # 打上 IP Range,或者 CIDR 也是可以

建立完 IP Pool 之後,就可以建立廣播了。

L2 Mode Advertisement

這裡就按照 MetalLB 官網上的 Configuration > Advanced L2 configuration 做設定。

也可以指定 .spec.ipAddressPools 套用指定的 IP Pool:

# 1. Save as `L2Advertisement.yaml`
# 2. In bash, `kubectl apply -f L2Advertisement.yaml`
# 3. If you want to remove, `kubectl delete -f L2Advertisement.yaml`
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: example
  namespace: metallb-system
#spec: # 沒有填寫 Spec 就是對於全部的 namespace 下的 IPAddressPool 都套用
#  ipAddressPools:
#  - first-pool # 對於 first-pool 會套用廣播

最後就把他們 Apply 進去:

kubectl apply -f IPAddressPool.yaml
kubectl apply -f L2Advertisement.yaml

https://ithelp.ithome.com.tw/upload/images/20221002/20112934pUZW0UJg4j.png

這樣設定上去,確定 MetalLB 沒有 Crash 就好,要怎麼驗證這東西是好的呢?下一篇將會安裝 Istio 來驗證這個設定是否成功,並且在這裡裝上 Layer 7 的 Load Balancer。

本系列內容也會同步貼到我的 Blog https://blog.yangjerry.tw 歡迎來我的 Blog 點一下 RSS 追蹤,那我們就下一篇文章見啦!

Source


上一篇
Day 16 MetalLB 簡介&安裝
下一篇
Day 18 Istio 簡介&安裝
系列文
關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言